package com.qiran.config;

import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;


/**
 * @Author 刘军 <jxsrlj@163.com>
 * @Company 启然软件工作室
 * @Wechat jxsrliujun
 * @Description
 * @Date 2023-08-23 17:43
 * @Version V1.0
 */

@Configuration
public class Swagger3Config {

    private License license = new License()
                .name("Apache 2.0")// 授权名称
                .url("https://www.apache.org/licenses/LICENSE-2.0.html")// 授权信息
                .identifier("Apache-2.0")                   // 标识授权许可
                .extensions(new HashMap<String, Object>());// 使用Map配置信息（如key为"name","url","identifier"）


    private Contact contact = new Contact()
        .name("刘军")// 作者名称
        .email("jxsrlj@163.com")// 作者邮箱
        .url("https://carhost.landcool.com.cn")// 介绍作者的URL地址
        .extensions(new HashMap<String, Object>());// 使用Map配置信息（如key为"name","email","url"）


    private Info info = new Info()
                .title("启然商城后台")// Api接口文档标题（必填）
                .description("启然商城后台管理")// Api接口文档描述
                .version("v1.0.0")// Api接口版本
                .termsOfService("https://example.com/")  // Api接口的服务条款地址          // Api接口的服务条款地址
                .contact(contact)// 设置联系人信息
                .license(license);// 授权许可信息
    private ExternalDocumentation externalDocumentation() {
        return new ExternalDocumentation()
                .description("这是一个额外的描述。")
                .url("https://shijizhe.github.io/");
    }

    @Bean
    public OpenAPI springShopOpenAPI() {
        return new OpenAPI()
                .openapi("3.0.1")
                .info(info)
                .externalDocs(externalDocumentation());
    }
}
